From: Giovanni Campagna Date: Tue, 4 Sep 2012 16:27:50 +0000 (+0200) Subject: Panel: move the _panelContainer down to PanelMenu X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5950 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=7c244b01c614da84c42a915a3626a449d3dc8c70;p=gnome-shell.git Panel: move the _panelContainer down to PanelMenu Panel already forces each item to be a PanelMenu.Button, so it's better to have the latter handle the bin container too, instead of attaching a private property that might collide with internal usage by the indicator. https://bugzilla.gnome.org/show_bug.cgi?id=683156 --- diff --git a/js/ui/panel.js b/js/ui/panel.js index 2e14c2277..a92b810fb 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -1174,7 +1174,7 @@ const Panel = new Lang.Class({ let indicator = this.statusArea[role]; if (!indicator) continue; - indicator._panelContainer.hide(); + indicator.container.hide(); } }, @@ -1206,18 +1206,12 @@ const Panel = new Lang.Class({ }, _addToPanelBox: function(role, indicator, position, box) { - let container = indicator._panelContainer; - if (!container) { - container = new St.Bin({ y_fill: true, - child: indicator.actor }); - indicator._panelContainer = container; - } + let container = indicator.container; container.show(); let parent = container.get_parent(); - if (parent) { + if (parent) parent.remove_actor(container); - } box.insert_child_at_index(container, position); if (indicator.menu) diff --git a/js/ui/panelMenu.js b/js/ui/panelMenu.js index 1cad7c894..a20c5fc21 100644 --- a/js/ui/panelMenu.js +++ b/js/ui/panelMenu.js @@ -21,6 +21,10 @@ const ButtonBox = new Lang.Class({ this.actor = new Shell.GenericContainer(params); this.actor._delegate = this; + this.container = new St.Bin({ y_fill: true, + x_fill: true, + child: this.actor }); + this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight)); this.actor.connect('allocate', Lang.bind(this, this._allocate));